Specification and Construction of Control Flow Semantics a generic approach using graph transformations
نویسنده
چکیده
The semantics of programming languages lack a formal, standardized specification language. We focus on control flow semantics and propose a graphical specification framework for these semantics, consisting of three elements: a graphical control flow specification language, a rule-based approach for constructing flow graphs and transformations from the former to the latter. In this thesis we introduce a control flow specification language () with which a language designer can specify the control flow semantics of all constructs that are featured in the programming language he or she designs. A control flow specification in consists of a set of specification graphs that adhere to the meta-model. We also presents a structured, rule-based approach for constructing a flow graph () for a program written in a particular programming language. In this approach, we use graph transformations to transform an abstract syntax graph representation () of the program into a . Such a graph transformation system consists of a set of programming language specific construction rules. Transformations between the two models are performed by another set of graph production rules: the meta-rules. These meta-rules generate the construction rules for a programming language from a control flow specification of that language in , thereby eliminating the need for hand designing the construction rules.
منابع مشابه
Specifying and executing optimizations for generalized control flow graphs
Compiler optimizations, usually expressed as rewrites on program graphs, are a core part of modern compilers. However, even production compilers have bugs, and these bugs are difficult to detect and resolve. In this paper we present Morpheus, a domain-specific language for formal specification of program transformations, and describe its executable semantics. The fundamental approach of Morpheu...
متن کاملSpecifying and Executing Optimizations for Parallel Programs
Compiler optimizations, usually expressed as rewrites on program graphs, are a core part of all modern compilers. However, even production compilers have bugs, and these bugs are difficult to detect and resolve. The problem only becomes more complex when compiling parallel programs; from the choice of graph representation to the possibility of race conditions, optimization designers have a rang...
متن کاملA Denotational Semantics for SIL-11 as basis for Transformational Design of Digital Systems
Transformational design is a promising design methodology which combines correctness by construction and interactive design. In this design methodology the design steps are behaviour preserving transformations of one design representation into another. The representations used in transformational design need to have formal semantic models in order to prove the correctness, behaviour preserving ...
متن کاملAlgebraic principles for program correctness tools in Isabelle/HOL
This thesis puts forward a flexible and principled approach to the development of construction and verification tools for imperative programs, in which the control flow and the data level are cleanly separated. The approach is inspired by algebraic principles and benefits from an algebraic semantics layer. It is programmed in the Isabelle/HOL interactive theorem prover and yields simple lightwe...
متن کاملCombining Theorem Proving and Model Checking for Certification of Behavioral Synthesis Flows
We develop a framework for certifying behavioral synthesis flows. Certification is decomposed into verified and verifying components, which are discharged by theorem proving and model checking respectively. The bridge between these components is provided by a new formal structure, clocked control data flow graph (CCDFG), that serves as the golden circuit model used in this framework. We discuss...
متن کامل